package com.quanyan.stadium.service.gameEvent;

import com.quanyan.api.APIResponse;
import com.quanyan.stadium.api.req.ReqCreateArrangeLiveGameEvent;
import com.quanyan.stadium.api.resp.v2.*;
import com.quanyan.stadium.entity.vo.GameEvent;

import java.util.List;

/**
 * Created by lenovo on 2017/1/5.
 *
 * 现场编排赛事
 */
public interface LiveArrangeGameEventService {

    /**
     *  小球现场编排 —— 赛事创建
     *  返回值：创建好的赛事id
     */
    GameEvent createGameEvent(Integer uid, ReqCreateArrangeLiveGameEvent req) throws Exception;

    /**
     * 自动编排
     * @param uid
     * @param req
     * @return
     * @throws Exception
     */
    APIResponse<Integer> createGameEventRound(Integer uid, ReqCreateArrangeLiveGameEvent req) throws Exception;


    /**
     * 根据匹配的用户自动编排
     *
     *
     * @param uid
     * @param req
     * @return
     * @throws Exception
     */
    void intiGameEventRound(Integer uid, ReqCreateArrangeLiveGameEvent req) throws Exception;


    /**
     *  个人数据展示
     *
     **/
    RespUserFLScoreMsg userFLScoreMsg(Integer gameEventId, Integer uid);

    /**
     *  赛事下所有对战表
     *
     **/
    List<RespGameRound> liveGameSchedule(Integer gameEventId);

    /**
     *  详情页
     *
     **/
    RespGameDetail liveGameEventDetailV2(Integer gameEventId, Integer uid);
    /**
     * 点击下一轮编排
     * */
    List<RespGameSchedule> openNextGameRoundV2(Integer gameEventId, Integer gameRoundId, Integer uid) throws Exception;

    /**
     * 排行榜
     * @param gameEventId
     * @return
     */
    RespGameUserRank getUserScoreRank(Integer gameEventId);

}
